package com.choichumgming.rentcat.model;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;
import java.math.BigDecimal;
@Data
@Document(indexName = "pms", type = "product",shards = 1,replicas = 0)
public class PmsProduct implements Serializable {

    @ApiModelProperty(value = "商品Id")
    @Id
    private Long productId;

    @ApiModelProperty(value = "发布者id")
    private Long userId;

    @ApiModelProperty(value = "用户名")
    private String username;

    @ApiModelProperty(value = "商品类别id")
    private Long productCategoryId;


    @ApiModelProperty(value = "商品分类名称")
    @Field(type = FieldType.Keyword)
    private String productCategoryName;


    @ApiModelProperty(value = "关键词")
    @Field(analyzer = "ik_max_word", type = FieldType.Text)
    private String keywords;

    @ApiModelProperty(value = "商品名")
    @Field(analyzer = "ik_max_word", type = FieldType.Text)
    private String name;

    @ApiModelProperty(value = "商品封面图片")
    private String pic;

    @ApiModelProperty(value = "上架状态：0->下架；1->上架")
    private Integer publishStatus;

    @ApiModelProperty(value = "租金")
    private BigDecimal price;

    @ApiModelProperty(value = "市场价")
    private BigDecimal originalPrice;

    @ApiModelProperty(value = "定金")
    private BigDecimal frontMoney;

    @ApiModelProperty(value = "商品描述")
    private String description;

    @ApiModelProperty(value = "视频")
    private String video;

    @ApiModelProperty(value = "画册图片，连产品图片限制为5张，以逗号分割")
    private String albumPics;

    @ApiModelProperty(value = "运费")
    private Long freightAmount;

    @ApiModelProperty(value = "出租状态：0->未租；1->已租")
    private Integer rentStatus;

    private static final long serialVersionUID = 1L;

//    public Long getProductId() {
//        return productId;
//    }
//
//    public void setProductId(Long productId) {
//        this.productId = productId;
//    }
//
//    public Long getUserId() {
//        return userId;
//    }
//
//    public void setUserId(Long userId) {
//        this.userId = userId;
//    }
//
//    public String getUsername() {
//        return username;
//    }
//
//    public void setUsername(String username) {
//        this.username = username;
//    }
//
//    public Long getProductCategoryId() {
//        return productCategoryId;
//    }
//
//    public void setProductCategoryId(Long productCategoryId) {
//        this.productCategoryId = productCategoryId;
//    }
//
//    public String getProductCategoryName() {
//        return productCategoryName;
//    }
//
//    public void setProductCategoryName(String productCategoryName) {
//        this.productCategoryName = productCategoryName;
//    }
//
//    public String getName() {
//        return name;
//    }
//
//    public void setName(String name) {
//        this.name = name;
//    }
//
//    public String getPic() {
//        return pic;
//    }
//
//    public void setPic(String pic) {
//        this.pic = pic;
//    }
//
//    public Integer getPublishStatus() {
//        return publishStatus;
//    }
//
//    public void setPublishStatus(Integer publishStatus) {
//        this.publishStatus = publishStatus;
//    }
//
//    public BigDecimal getPrice() {
//        return price;
//    }
//
//    public void setPrice(BigDecimal price) {
//        this.price = price;
//    }
//
//    public BigDecimal getOriginalPrice() {
//        return originalPrice;
//    }
//
//    public void setOriginalPrice(BigDecimal originalPrice) {
//        this.originalPrice = originalPrice;
//    }
//
//    public BigDecimal getFrontMoney() {
//        return frontMoney;
//    }
//
//    public void setFrontMoney(BigDecimal frontMoney) {
//        this.frontMoney = frontMoney;
//    }
//
//    public String getDescription() {
//        return description;
//    }
//
//    public void setDescription(String description) {
//        this.description = description;
//    }
//
//    public String getVideo() {
//        return video;
//    }
//
//    public void setVideo(String video) {
//        this.video = video;
//    }
//
//    public String getAlbumPics() {
//        return albumPics;
//    }
//
//    public void setAlbumPics(String albumPics) {
//        this.albumPics = albumPics;
//    }
//
//    public Long getFreightAmount() {
//        return freightAmount;
//    }
//
//    public void setFreightAmount(Long freightAmount) {
//        this.freightAmount = freightAmount;
//    }
//
//    public Integer getRentStatus() {
//        return rentStatus;
//    }
//
//    public void setRentStatus(Integer rentStatus) {
//        this.rentStatus = rentStatus;
//    }
//
//    public String getKeywords() {
//        return keywords;
//    }
//
//    public void setKeywords(String keywords) {
//        this.keywords = keywords;
//    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", productId=").append(productId);
        sb.append(", userId=").append(userId);
        sb.append(", username=").append(username);
        sb.append(", productCategoryId=").append(productCategoryId);
        sb.append(", productCategoryName=").append(productCategoryName);
        sb.append(", name=").append(name);
        sb.append(", pic=").append(pic);
        sb.append(", publishStatus=").append(publishStatus);
        sb.append(", price=").append(price);
        sb.append(", originalPrice=").append(originalPrice);
        sb.append(", frontMoney=").append(frontMoney);
        sb.append(", description=").append(description);
        sb.append(", video=").append(video);
        sb.append(", albumPics=").append(albumPics);
        sb.append(", freightAmount=").append(freightAmount);
        sb.append(", rentStatus=").append(rentStatus);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}